home *** CD-ROM | disk | FTP | other *** search
- // main_form.cpp
-
- #include "main_form.h"
- #include "app_constants.h"
- #include "Finder_res.h"
- #include "drawing.h"
- #include "prefs.h"
- #include "da_mgr.h"
- // UI elements
- #include "superclock.h"
- #include "battery.h"
- #include "menu_bar.h"
- #include "events.h"
-
- // constants
- const int disk_x =138;
- const int disk_y = 50;
-
- //
- // constructor
- //
- main_form::main_form(FormPtr frmP):
- view(), commander(NULL)
- {
- // variables
- UInt16 gadget_index;
- FormGadgetType* gadgetP;
- FinderPrefsType* prefs = prefs::get_prefs();
- int x, y;
-
- // initialize member variables
- m_form = frmP;
-
- // set up bounds
- FrmGetFormBounds (frmP, &m_bounds);
-
- // create menu_bar from gadget
- gadget_index = FrmGetObjectIndex (frmP, MainMenuBarGadget);
- gadgetP = (FormGadgetType*) FrmGetObjectPtr (frmP, gadget_index);
- menu_bar* the_menu_bar = new menu_bar(gadgetP, this);
-
- // attach superclock to menu_bar
- gadget_index = FrmGetObjectIndex (frmP, MainSuperClockGadget);
- gadgetP = (FormGadgetType*) FrmGetObjectPtr (frmP, gadget_index);
- new superclock(gadgetP, the_menu_bar);
-
- // attach battery to menu_bar
- gadget_index = FrmGetObjectIndex (frmP, MainBatteryGadget);
- gadgetP = (FormGadgetType*) FrmGetObjectPtr (frmP, gadget_index);
- new battery(gadgetP, the_menu_bar);
-
- // set default super-commander to me
- set_default_commander(this);
-
- // create trash can
- x = prefs->trash_position.x;
- y = prefs->trash_position.y;
- m_trashcan = new trashcan(x, y, this);
-
- // create ram disk icon
- new icon(RAMDiskBitmap, RAMDiskMaskBitmap, "Palm RAM", disk_x, disk_y, this);
-
- // create desk accessory manager
- m_da_mgr = new da_mgr(this);
- }
-
-
- //
- // destructor
- //
- main_form::~main_form() {
- FinderPrefsType* prefs = prefs::get_prefs();
- int x, y;
-
- // save trashcan position
- if (m_trashcan!=NULL) {
- m_trashcan->get_position(x, y);
- prefs->trash_position.x = x;
- prefs->trash_position.y = y;
- }
-
- delete m_da_mgr;
- }
-
- //
- // handle_event
- //
- Boolean
- main_form::handle_event(EventPtr eventP) {
- Boolean handled = false;
- FormPtr active_form = FrmGetActiveForm();
-
- if (active_form!=m_form)
- return false;
-
- idle();
-
- switch (eventP->eType)
- {
- case menuEvent:
- return dispatch_command(eventP->data.menu.itemID, NULL);
-
- case frmOpenEvent:
- draw ();
- handled = true;
- break;
-
- case frmUpdateEvent:
- draw ();
- handled = true;
- break;
-
- case penDownEvent:
- handled = click(eventP->screenX, eventP->screenY);
- break;
-
- default:
- break;
-
- }
- return handled;
- }
-
- //
- // do_command
- //
- Boolean
- main_form::do_cmd_self (int in_eventID, void* io_data) {
- #pragma unused (io_data)
- Boolean handled = true;
-
-
- switch (in_eventID) {
- // Apple Menu
- case cmd_about:
- FrmAlert (AboutBoxAlert);
- break;
- case cmd_alarm_clock:
- m_da_mgr->open_alarm_clock();
- break;
- // File Menu
-
- // Special Menu
- case cmd_empty_trash:
- break;
- case cmd_sleep:
- SysSleep(false, false);
- break;
- case cmd_restart:
- startup_sequence();
- send_update_event();
- break;
- case cmd_shutdown:
- FrmAlert (CantShutdownAlert);
- break;
- default:
- handled = false;
- break;
- }
- return handled;
- }
-
- #pragma mark -
-
- //
- // draw_self()
- //
- void
- main_form::draw_self() {
- // draw form in background
- FrmDrawForm (m_form);
- }
-
- //
- // click_self()
- //
- Boolean
- main_form::click_self(int x, int y) {
- #pragma unused (x, y)
-
- // variables
- short new_x, new_y;
- Boolean pen_down;
-
- // deselect icons
- dispatch_command (evt_deselect_icons, NULL);
-
- // marquee
- EvtGetPen ( &new_x, &new_y, &pen_down );
- while (pen_down==true) {
- EvtGetPen ( &new_x, &new_y, &pen_down );
- }
-
- return false;
- }
-
-